
using System;
using System.Collections;
using QdbUnit;
using QdbUnit.Extensions;

namespace QdbUnit.Extensions
{
	/// <summary>Base class for composable qdb test suites (AllTests classes inside each package, for instance).
	/// 	</summary>
	/// <remarks>Base class for composable qdb test suites (AllTests classes inside each package, for instance).
	/// 	</remarks>
	public abstract class QdbTestSuite : AbstractQdbTestCase, ITestSuiteBuilder
	{
		public virtual IEnumerator GetEnumerator()
		{
			return new QdbTestSuiteBuilder(Fixture(), TestCases()).GetEnumerator();
		}

		protected abstract override Type[] TestCases();
	}
}
